package com.cdy.demo.algorithm;

import java.util.HashMap;
import java.util.Map;

/**
 * //1. 给定一个字符串，输出不含有重复字符的最长子串的长度。
 * //例如： 输入: "abcabcbb"  输出: 3； 输入："aaaaa" 输出：1
 */
public class MaxUniqueString {

    public static void main(String[] args) {
        Integer a = new MaxUniqueString().getUnique("abcabcbb");
        System.out.println(a);
    }

    public Integer getUnique(String s) {
        Map<Character, Integer> window = new HashMap<>();
        char[] chars = s.toCharArray();
        int max = 0;
        for (int i = 0; i < chars.length; i++) {
            if (window.containsKey(chars[i])) {
                Integer lastIndex = window.get(chars[i]);
                max = Math.max(max, i - lastIndex);
            } else {
                max += 1;
            }
            window.put(chars[i], i);
        }
        return max;

    }

}
